{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-19T01:58:14.721551Z",
     "start_time": "2018-10-19T01:58:14.351382Z"
    },
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.autograd import Variable\n",
    "from torch.optim.lr_scheduler import StepLR\n",
    "from torch.utils.data import DataLoader,TensorDataset\n",
    "import torch.utils.data as data\n",
    "import numpy as np\n",
    "import scipy.io as sio\n",
    "import math\n",
    "import argparse\n",
    "import random\n",
    "import os\n",
    "from My_Loss import HardTripletLoss\n",
    "from My_Loss import HardTripletLoss2\n",
    "from My_Loss import HardTripletLoss_D\n",
    "from tensorboardX import SummaryWriter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-19T01:58:14.724423Z",
     "start_time": "2018-10-19T01:58:14.722422Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "BATCH_SIZE = 64\n",
    "EPISODE = 100000\n",
    "TEST_EPISODE = 1000\n",
    "LEARNING_RATE =1e-3\n",
    "Weight_Deacy = 1e-6\n",
    "GPU = 0\n",
    "Margin = 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-19T01:58:15.426677Z",
     "start_time": "2018-10-19T01:58:14.725602Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "init dataset\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "print(\"init dataset\")\n",
    "##################################参数##################################################################\n",
    "dataroot = '../data'\n",
    "dataset = 'CUB1_data'\n",
    "image_embedding = 'res101'               #ResNet101层\n",
    "class_embedding = 'original_att'         #属性表达 85-d\n",
    "#######################################读取视觉特征###################################################################\n",
    "\n",
    "matcontent = sio.loadmat(dataroot + \"/\" + dataset + \"/\" + image_embedding + \".mat\")  #scipy loadmat\n",
    " \n",
    "feature = matcontent['features'].T         #转置 30478x2048 每一行是一个完整的样本\n",
    "\n",
    "label = matcontent['labels'].astype(int).squeeze() - 1   #matlab begin 1 ,numpy begin 0\n",
    "########################################读取属性特征###########################################################\n",
    "\n",
    "matcontent = sio.loadmat(dataroot + \"/\" + dataset + \"/\" + class_embedding + \"_splits.mat\")\n",
    "\n",
    "    \n",
    "# numpy array index starts from 0, matlab starts from 1\n",
    "trainval_loc = matcontent['trainval_loc'].squeeze() - 1    #squeeze()去掉维度中的1 AxBx1 --->AxB\n",
    "\n",
    "test_seen_loc = matcontent['test_seen_loc'].squeeze() - 1\n",
    "test_unseen_loc = matcontent['test_unseen_loc'].squeeze() - 1\n",
    "\n",
    "attribute = matcontent['att'].T    #转置 50x85 每行是整个属性向量\n",
    "\n",
    "x = feature[trainval_loc]                      # train_features trainval里面是图片的编号 begin with 0 ，19832个\n",
    "train_label = label[trainval_loc].astype(int)  # train_label  int类型没变 每个图片的lable 19832个\n",
    "train_id = np.unique(train_label)\n",
    "\n",
    "att = attribute[train_label]                   # train attributes 每个图片的属性 19832个\n",
    "\n",
    "########################add negative pairs#######################\n",
    "#x_negative = np.empty_like(x)\n",
    "#x_negative_label = np.empty_like(train_label)\n",
    "#print(x.shape[0])\n",
    "\n",
    "#for i in range(x.shape[0]):\n",
    "#    pick=np.random.choice(np.where(train_label[i]!=train_id)[0], replace=True)\n",
    "#    x_negative[i] = x[pick]\n",
    "#    x_negative_label[i] = train_label[pick]\n",
    "    \n",
    "x_test = feature[test_unseen_loc]                   # test_feature 5685个\n",
    "test_label = label[test_unseen_loc].astype(int)     # test_label   5685个\n",
    "\n",
    "x_test_seen = feature[test_seen_loc]                #test_seen_feature 4958个\n",
    "test_label_seen = label[test_seen_loc].astype(int)  # test_seen_label  4958个\n",
    "    \n",
    "test_id = np.unique(test_label)                     # test_id  10个类 ，unique去重\n",
    "att_pro = attribute[test_id]                        # test_attribute 每一类的属性向量 10x85\n",
    "\n",
    "# train set\n",
    "train_features = torch.from_numpy(x)   #np-->tensor\n",
    "#train_fearures_negative = torch.from_numpy(x_negative)\n",
    "\n",
    "sample_attributes=[]\n",
    "train_label = torch.from_numpy(train_label).unsqueeze(1) #每张图片的属性转化 ，unsqueeze(1)就是插入到第一维度 AxB维-->Ax1xB\n",
    "#train_negative_label = torch.from_numpy(x_negative_label).unsqueeze(1)\n",
    "# attributes\n",
    "all_attributes = np.array(attribute)  #所有50类属性转变为numpy数组???属性向量仍然用的numpy类型 没有转化为pytorch\n",
    "#print(all_attributes)\n",
    "    \n",
    "#print('-'*50)\n",
    "attributes = torch.from_numpy(attribute) \n",
    "#print(attribute)\n",
    "# test set\n",
    "\n",
    "test_features = torch.from_numpy(x_test)\n",
    "#print(test_features.shape)\n",
    "\n",
    "test_label = torch.from_numpy(test_label).unsqueeze(1)\n",
    "#print(test_label.shape)\n",
    "\n",
    "testclasses_id = np.array(test_id)\n",
    "#print(testclasses_id.shape)\n",
    "\n",
    "test_attributes = torch.from_numpy(att_pro).float()\n",
    "#print(test_attributes.shape)\n",
    "\n",
    "test_seen_features = torch.from_numpy(x_test_seen)\n",
    "#print(test_seen_features.shape)\n",
    "\n",
    "test_seen_label = torch.from_numpy(test_label_seen)\n",
    "\n",
    "train_data = TensorDataset( train_label, train_features )\n",
    "#train_data = TensorDataset(train_label, train_features, train_fearures_negative)\n",
    "\n",
    "#################here need new code to make triplet data#####################\n",
    "print('-'*100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-19T01:58:15.429828Z",
     "start_time": "2018-10-19T01:58:15.427757Z"
    },
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "from my_net_3 import AttributeNetwork\n",
    "from my_net_3 import MetricNetwork"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-19T01:58:17.390822Z",
     "start_time": "2018-10-19T01:58:15.431013Z"
    },
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "init networks\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "# init network\n",
    "print(\"init networks\")\n",
    "attribute_network = AttributeNetwork(312,1200,2048)  #85d属性 1024隐藏层 2048输出 85d到2048d\n",
    "metric_network = MetricNetwork(2048,1200,2048)\n",
    "#triplet_network = TripletNetwork(attribute_network, metric_network)  #metric learning   \n",
    "attribute_network.cuda(GPU) \n",
    "metric_network.cuda(GPU)\n",
    "#attribute_network_optim = torch.optim.Adam(attribute_network.parameters(), lr=LEARNING_RATE, weight_decay=1e-5)\n",
    "#优化器adam 学习率 正则1e-5\n",
    "\n",
    "#attribute_network_scheduler = StepLR(attribute_network_optim, step_size=200000, gamma=0.5)\n",
    "#学习率每200k步 乘0.5\n",
    "attribute_network_optim = torch.optim.SGD(attribute_network.parameters(), lr=LEARNING_RATE,weight_decay=Weight_Deacy,momentum=0.5)\n",
    "metric_network_optim = torch.optim.SGD(metric_network.parameters(), lr=LEARNING_RATE,weight_decay=Weight_Deacy)\n",
    "#\n",
    "#triplet_network_optim = torch.optim.SGD(triplet_network.parameters(), lr=LEARNING_RATE,momentum=0.9 , \n",
    "#                                         weight_decay=Weight_Deacy)\n",
    "\n",
    "attribute_network_scheduler = StepLR(attribute_network_optim , step_size=10000 , gamma=1)\n",
    "metric_network_scheduler = StepLR(metric_network_optim , step_size=10000 , gamma=1)\n",
    "#\n",
    "print('-'*100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-19T01:58:17.397383Z",
     "start_time": "2018-10-19T01:58:17.392051Z"
    },
    "collapsed": true,
    "hide_input": true
   },
   "outputs": [],
   "source": [
    "def compute_accuracy(test_features, test_label, test_id, test_attributes):\n",
    "    \n",
    "    test_data = TensorDataset(test_features, test_label)\n",
    "    test_batch = 32\n",
    "    test_loader = DataLoader(test_data, batch_size=test_batch, shuffle=False)\n",
    "    total_rewards = 0\n",
    "\n",
    "    sample_labels = test_id\n",
    "    sample_attributes = test_attributes\n",
    "    class_num = sample_attributes.shape[0]\n",
    "    test_size = test_features.shape[0]\n",
    "\n",
    "    print(\"class num:\", class_num)\n",
    "\n",
    "    for batch_features,batch_labels in test_loader:\n",
    "\n",
    "        batch_size = batch_labels.shape[0]\n",
    "        batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(class_num, 0))\n",
    "        batch_features_ext = metric_network(Variable(batch_features_ext).cuda(GPU).float())  # 32*1024\n",
    "\n",
    "        #print(batch_features_ext)\n",
    "\n",
    "        sample_features = metric_network(attribute_network(Variable(sample_attributes).cuda(GPU).float()))\n",
    "        sample_features_ext = sample_features.repeat(batch_size, 1)\n",
    "        #print(sample_features_ext.shape)\n",
    "\n",
    "\n",
    "        relations = F.pairwise_distance(batch_features_ext, sample_features_ext, 2).view(-1, class_num)\n",
    "        re_batch_labels = []\n",
    "        for label in batch_labels.numpy():\n",
    "            index = np.argwhere(sample_labels == label)\n",
    "            re_batch_labels.append(index[0][0])\n",
    "        re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "\n",
    "\n",
    "        _, predict_labels = torch.min(relations.data, 1)\n",
    "        #print(predict_labels)\n",
    "        rewards = [1 if predict_labels[j] == re_batch_labels[j] else 0 for j in range(batch_size)]\n",
    "        total_rewards += np.sum(rewards)\n",
    "    test_accuracy = total_rewards/1.0/test_size\n",
    "    return  test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-19T01:58:17.406098Z",
     "start_time": "2018-10-19T01:58:17.398943Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def compute_accuracy_per_class(test_features, test_label, test_id, test_attributes,cos_sim = False):\n",
    "    BATCH_SIZE\n",
    "    test_data = TensorDataset(test_features, test_label)\n",
    "    test_batch = 32\n",
    "    test_loader = DataLoader(test_data, batch_size=test_batch, shuffle=False)\n",
    "    total_rewards = 0\n",
    "    #print(test_features.size())\n",
    "    sample_labels = test_id\n",
    "    sample_attributes = test_attributes\n",
    "    class_num = sample_attributes.shape[0]\n",
    "    test_size = test_features.shape[0]\n",
    "    per_class_num = np.zeros(class_num)\n",
    "    per_class_true= np.zeros(class_num)\n",
    "\n",
    "    print(\"class num:\", class_num)\n",
    "\n",
    "    for batch_features,batch_labels in test_loader:\n",
    "\n",
    "        batch_size = batch_labels.shape[0]\n",
    "        batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(class_num, 0))\n",
    "        batch_features_ext = (Variable(batch_features_ext).cuda(GPU).float())  # 32*1024\n",
    "\n",
    "\n",
    "        sample_features = (attribute_network(Variable(sample_attributes).cuda(GPU).float()))\n",
    "        sample_features_ext = sample_features.repeat(batch_size, 1)\n",
    "\n",
    "        if cos_sim:\n",
    "            relations = F.cosine_similarity(batch_features_ext, sample_features_ext).view(-1, class_num)\n",
    "        else:\n",
    "            relations = F.pairwise_distance(batch_features_ext, sample_features_ext, 2).view(-1, class_num)\n",
    "        re_batch_labels = []\n",
    "        for label in batch_labels.numpy():\n",
    "            index = np.argwhere(sample_labels == label)\n",
    "            re_batch_labels.append(index[0][0])\n",
    "        re_batch_labels_id, batch_per_num = np.unique(re_batch_labels , return_counts=True) \n",
    "        re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "        \n",
    "        for each in range(re_batch_labels_id.size):\n",
    "            #print(re_batch_labels_id[each])\n",
    "            #print(batch_per_num[each])\n",
    "            per_class_num[re_batch_labels_id[each]] = per_class_num[re_batch_labels_id[each]] + batch_per_num[each]\n",
    "        #print(re_batch_labels_id)\n",
    "        #print('-'*100)\n",
    "        #print(batch_per_num)\n",
    "        #print('-'*100)\n",
    "\n",
    "\n",
    "        _, predict_labels = torch.min(relations.data, 1)\n",
    "        for j in range(batch_size):\n",
    "            if predict_labels[j] == re_batch_labels[j]:\n",
    "                per_class_true[re_batch_labels[j]] = per_class_true[re_batch_labels[j]] + 1\n",
    "            \n",
    "        \n",
    "        \n",
    "    per_accuracy = per_class_true[np.nonzero(per_class_num)] / per_class_num[np.nonzero(per_class_num)]\n",
    "    \n",
    "\n",
    "    test_accuracy = np.sum(per_accuracy)/1.0/np.count_nonzero(per_class_num)\n",
    "    \n",
    "    #print(np.count_nonzero(per_class_num))\n",
    "    return  test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-19T03:16:50.558110Z",
     "start_time": "2018-10-19T01:58:17.407116Z"
    },
    "code_folding": [],
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "training...\n",
      "episode: 1 loss tensor(1.5494, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.00868361581920904\n",
      "gzsl: unseen=0.0010 , seen=0.0045 , h=0.0016\n",
      "____________________________________________________________________________________________________\n",
      "episode: 200 loss tensor(1.5484, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.025733290693955867\n",
      "gzsl: unseen=0.0080 , seen=0.0136 , h=0.0101\n",
      "____________________________________________________________________________________________________\n",
      "episode: 400 loss tensor(1.5347, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.04138044984543225\n",
      "gzsl: unseen=0.0140 , seen=0.0188 , h=0.0161\n",
      "____________________________________________________________________________________________________\n",
      "episode: 600 loss tensor(1.5375, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.051725082613793834\n",
      "gzsl: unseen=0.0190 , seen=0.0241 , h=0.0213\n",
      "____________________________________________________________________________________________________\n",
      "episode: 800 loss tensor(1.5266, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.06210809082187399\n",
      "gzsl: unseen=0.0217 , seen=0.0290 , h=0.0248\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1000 loss tensor(1.5284, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07082015004649897\n",
      "gzsl: unseen=0.0230 , seen=0.0350 , h=0.0278\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1200 loss tensor(1.5255, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07885989288694316\n",
      "gzsl: unseen=0.0260 , seen=0.0397 , h=0.0314\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1400 loss tensor(1.5250, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08504748776874754\n",
      "gzsl: unseen=0.0317 , seen=0.0420 , h=0.0361\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1600 loss tensor(1.5201, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09593942120720898\n",
      "gzsl: unseen=0.0344 , seen=0.0488 , h=0.0403\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1800 loss tensor(1.5244, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.102263017324085\n",
      "gzsl: unseen=0.0354 , seen=0.0548 , h=0.0430\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2000 loss tensor(1.5221, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11056962164904117\n",
      "gzsl: unseen=0.0387 , seen=0.0610 , h=0.0474\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2200 loss tensor(1.5189, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1180999305272212\n",
      "gzsl: unseen=0.0431 , seen=0.0699 , h=0.0533\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2400 loss tensor(1.5186, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1207284165720146\n",
      "gzsl: unseen=0.0471 , seen=0.0744 , h=0.0577\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2600 loss tensor(1.5158, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1247628993306353\n",
      "gzsl: unseen=0.0474 , seen=0.0798 , h=0.0595\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2800 loss tensor(1.5205, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13078588783638243\n",
      "gzsl: unseen=0.0501 , seen=0.0840 , h=0.0628\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3000 loss tensor(1.5179, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1382028369889248\n",
      "gzsl: unseen=0.0528 , seen=0.0848 , h=0.0651\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3200 loss tensor(1.5174, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14655915882800524\n",
      "gzsl: unseen=0.0575 , seen=0.0900 , h=0.0701\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3400 loss tensor(1.5172, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15196554517752317\n",
      "gzsl: unseen=0.0591 , seen=0.0936 , h=0.0725\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3600 loss tensor(1.5166, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15670487522468382\n",
      "gzsl: unseen=0.0598 , seen=0.0991 , h=0.0746\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3800 loss tensor(1.5142, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15903820855801712\n",
      "gzsl: unseen=0.0608 , seen=0.1004 , h=0.0757\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4000 loss tensor(1.5152, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1641165216560252\n",
      "gzsl: unseen=0.0638 , seen=0.1041 , h=0.0791\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4200 loss tensor(1.5150, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16808964046918018\n",
      "gzsl: unseen=0.0675 , seen=0.1127 , h=0.0844\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4400 loss tensor(1.5143, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17247849321261977\n",
      "gzsl: unseen=0.0688 , seen=0.1179 , h=0.0869\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4600 loss tensor(1.5151, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17416230384967413\n",
      "gzsl: unseen=0.0695 , seen=0.1212 , h=0.0883\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4800 loss tensor(1.5178, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1765014817183669\n",
      "gzsl: unseen=0.0712 , seen=0.1242 , h=0.0905\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5000 loss tensor(1.5163, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1805186256887546\n",
      "gzsl: unseen=0.0718 , seen=0.1261 , h=0.0915\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5200 loss tensor(1.5149, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.18194726391201585\n",
      "gzsl: unseen=0.0725 , seen=0.1286 , h=0.0927\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5400 loss tensor(1.5112, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.18597005759991764\n",
      "gzsl: unseen=0.0748 , seen=0.1328 , h=0.0957\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 5600 loss tensor(1.5152, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.18863672426658432\n",
      "gzsl: unseen=0.0768 , seen=0.1338 , h=0.0976\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5800 loss tensor(1.5154, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.19099304610566478\n",
      "gzsl: unseen=0.0752 , seen=0.1398 , h=0.0978\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6000 loss tensor(1.5115, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1952257291884918\n",
      "gzsl: unseen=0.0765 , seen=0.1433 , h=0.0998\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6200 loss tensor(1.5116, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1948427209804116\n",
      "gzsl: unseen=0.0759 , seen=0.1460 , h=0.0998\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6400 loss tensor(1.5102, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.19685421523328517\n",
      "gzsl: unseen=0.0775 , seen=0.1502 , h=0.1023\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6600 loss tensor(1.5166, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1999608195582413\n",
      "gzsl: unseen=0.0769 , seen=0.1550 , h=0.1028\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6800 loss tensor(1.5104, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.20160484471547405\n",
      "gzsl: unseen=0.0772 , seen=0.1593 , h=0.1040\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7000 loss tensor(1.5112, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.20230097062346433\n",
      "gzsl: unseen=0.0765 , seen=0.1643 , h=0.1044\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7200 loss tensor(1.5091, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.20566294218005893\n",
      "gzsl: unseen=0.0772 , seen=0.1701 , h=0.1062\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7400 loss tensor(1.5138, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.20773525856423972\n",
      "gzsl: unseen=0.0789 , seen=0.1735 , h=0.1085\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7600 loss tensor(1.5121, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.21316668378543152\n",
      "gzsl: unseen=0.0786 , seen=0.1786 , h=0.1092\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7800 loss tensor(1.5106, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.21522765809520655\n",
      "gzsl: unseen=0.0803 , seen=0.1808 , h=0.1112\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8000 loss tensor(1.5106, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.21362200837769243\n",
      "gzsl: unseen=0.0800 , seen=0.1824 , h=0.1112\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8200 loss tensor(1.5124, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.21495534171102582\n",
      "gzsl: unseen=0.0797 , seen=0.1850 , h=0.1114\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8400 loss tensor(1.5104, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2153056241969015\n",
      "gzsl: unseen=0.0814 , seen=0.1905 , h=0.1140\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8600 loss tensor(1.5102, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.21742196573831496\n",
      "gzsl: unseen=0.0834 , seen=0.1898 , h=0.1159\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8800 loss tensor(1.5080, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.21876776652105215\n",
      "gzsl: unseen=0.0824 , seen=0.1947 , h=0.1158\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9000 loss tensor(1.5120, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.22142878347020467\n",
      "gzsl: unseen=0.0838 , seen=0.1990 , h=0.1179\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9200 loss tensor(1.5063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.22382858865235938\n",
      "gzsl: unseen=0.0851 , seen=0.2079 , h=0.1207\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9400 loss tensor(1.5091, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2244570320577753\n",
      "gzsl: unseen=0.0851 , seen=0.2093 , h=0.1210\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9600 loss tensor(1.5122, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.22446852631064884\n",
      "gzsl: unseen=0.0838 , seen=0.2145 , h=0.1205\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9800 loss tensor(1.5075, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.22521315907901043\n",
      "gzsl: unseen=0.0848 , seen=0.2237 , h=0.1229\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10000 loss tensor(1.5066, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.22414084269482967\n",
      "gzsl: unseen=0.0848 , seen=0.2268 , h=0.1234\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10200 loss tensor(1.5066, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2290197819930548\n",
      "gzsl: unseen=0.0858 , seen=0.2299 , h=0.1249\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10400 loss tensor(1.5087, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.22834727079102868\n",
      "gzsl: unseen=0.0858 , seen=0.2327 , h=0.1253\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10600 loss tensor(1.5073, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.23103088661023777\n",
      "gzsl: unseen=0.0865 , seen=0.2368 , h=0.1267\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10800 loss tensor(1.5104, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.23374703333380598\n",
      "gzsl: unseen=0.0855 , seen=0.2380 , h=0.1258\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11000 loss tensor(1.5072, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.23576963220386246\n",
      "gzsl: unseen=0.0858 , seen=0.2406 , h=0.1265\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 11200 loss tensor(1.5092, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.23841934971798673\n",
      "gzsl: unseen=0.0875 , seen=0.2445 , h=0.1288\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11400 loss tensor(1.5088, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.23776417730419364\n",
      "gzsl: unseen=0.0878 , seen=0.2462 , h=0.1294\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11600 loss tensor(1.5081, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.23844214340588857\n",
      "gzsl: unseen=0.0885 , seen=0.2479 , h=0.1304\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11800 loss tensor(1.5081, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.23909649480161924\n",
      "gzsl: unseen=0.0881 , seen=0.2520 , h=0.1306\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12000 loss tensor(1.5047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.23978576033834245\n",
      "gzsl: unseen=0.0888 , seen=0.2551 , h=0.1318\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12200 loss tensor(1.5078, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.24115303461613796\n",
      "gzsl: unseen=0.0888 , seen=0.2588 , h=0.1322\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12400 loss tensor(1.5095, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.243530393106704\n",
      "gzsl: unseen=0.0905 , seen=0.2650 , h=0.1349\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12600 loss tensor(1.5054, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.24354169254173225\n",
      "gzsl: unseen=0.0891 , seen=0.2665 , h=0.1336\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12800 loss tensor(1.5062, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2451529919767605\n",
      "gzsl: unseen=0.0912 , seen=0.2732 , h=0.1368\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13000 loss tensor(1.5079, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2494717167548073\n",
      "gzsl: unseen=0.0922 , seen=0.2746 , h=0.1381\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13200 loss tensor(1.5048, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.24989875012012014\n",
      "gzsl: unseen=0.0915 , seen=0.2785 , h=0.1378\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13400 loss tensor(1.5089, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.25116989848992544\n",
      "gzsl: unseen=0.0932 , seen=0.2821 , h=0.1402\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13600 loss tensor(1.5077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.25381533368726117\n",
      "gzsl: unseen=0.0956 , seen=0.2867 , h=0.1434\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13800 loss tensor(1.5064, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2531315230502068\n",
      "gzsl: unseen=0.0949 , seen=0.2882 , h=0.1428\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14000 loss tensor(1.5090, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.25314282248523506\n",
      "gzsl: unseen=0.0939 , seen=0.2878 , h=0.1416\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14200 loss tensor(1.5069, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.25603773773947236\n",
      "gzsl: unseen=0.0951 , seen=0.2917 , h=0.1435\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14400 loss tensor(1.5077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.25707323633400075\n",
      "gzsl: unseen=0.0948 , seen=0.2931 , h=0.1433\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14600 loss tensor(1.5036, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.25876815158823807\n",
      "gzsl: unseen=0.0962 , seen=0.2972 , h=0.1453\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14800 loss tensor(1.5041, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.25970713463908557\n",
      "gzsl: unseen=0.0948 , seen=0.2977 , h=0.1438\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15000 loss tensor(1.5029, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2600517674074471\n",
      "gzsl: unseen=0.0968 , seen=0.3007 , h=0.1465\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15200 loss tensor(1.5053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2664018550754775\n",
      "gzsl: unseen=0.0979 , seen=0.3018 , h=0.1478\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15400 loss tensor(1.5064, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2664189990458652\n",
      "gzsl: unseen=0.0972 , seen=0.3071 , h=0.1477\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15600 loss tensor(1.5039, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2671296908697645\n",
      "gzsl: unseen=0.0986 , seen=0.3089 , h=0.1494\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15800 loss tensor(1.5057, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.26772404115225046\n",
      "gzsl: unseen=0.0972 , seen=0.3112 , h=0.1482\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16000 loss tensor(1.5035, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.26940765697145946\n",
      "gzsl: unseen=0.0995 , seen=0.3127 , h=0.1510\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16200 loss tensor(1.5030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2717466400223069\n",
      "gzsl: unseen=0.0992 , seen=0.3121 , h=0.1505\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16400 loss tensor(1.5058, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2714189564064877\n",
      "gzsl: unseen=0.1009 , seen=0.3140 , h=0.1527\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16600 loss tensor(1.5054, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2704246061240018\n",
      "gzsl: unseen=0.1005 , seen=0.3159 , h=0.1525\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 16800 loss tensor(1.5063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.27273086345264486\n",
      "gzsl: unseen=0.1002 , seen=0.3182 , h=0.1524\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17000 loss tensor(1.5028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2740201716287455\n",
      "gzsl: unseen=0.1009 , seen=0.3218 , h=0.1536\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17200 loss tensor(1.5053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.27484739981190365\n",
      "gzsl: unseen=0.0995 , seen=0.3239 , h=0.1523\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17400 loss tensor(1.5045, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2747535049620788\n",
      "gzsl: unseen=0.0998 , seen=0.3264 , h=0.1529\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17600 loss tensor(1.5018, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2757591546795929\n",
      "gzsl: unseen=0.1012 , seen=0.3266 , h=0.1545\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17800 loss tensor(1.5038, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.27609248801292624\n",
      "gzsl: unseen=0.1016 , seen=0.3279 , h=0.1551\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18000 loss tensor(1.5049, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.27815365714054663\n",
      "gzsl: unseen=0.1012 , seen=0.3327 , h=0.1552\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18200 loss tensor(1.5052, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.27807710107895484\n",
      "gzsl: unseen=0.0999 , seen=0.3342 , h=0.1538\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18400 loss tensor(1.5056, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.27845445956952086\n",
      "gzsl: unseen=0.1012 , seen=0.3383 , h=0.1558\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18600 loss tensor(1.5025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.28112658113585626\n",
      "gzsl: unseen=0.1022 , seen=0.3387 , h=0.1571\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18800 loss tensor(1.5017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2824827081570914\n",
      "gzsl: unseen=0.1022 , seen=0.3435 , h=0.1576\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19000 loss tensor(1.5033, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2824330332823446\n",
      "gzsl: unseen=0.1022 , seen=0.3489 , h=0.1581\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19200 loss tensor(1.5019, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2841493748237581\n",
      "gzsl: unseen=0.1039 , seen=0.3507 , h=0.1603\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19400 loss tensor(1.5030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2844330332823446\n",
      "gzsl: unseen=0.1022 , seen=0.3511 , h=0.1584\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19600 loss tensor(1.5051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2851493748237581\n",
      "gzsl: unseen=0.1029 , seen=0.3537 , h=0.1595\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19800 loss tensor(1.5037, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.28478916030357976\n",
      "gzsl: unseen=0.1013 , seen=0.3523 , h=0.1573\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20000 loss tensor(1.5036, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2844006545564533\n",
      "gzsl: unseen=0.1029 , seen=0.3560 , h=0.1597\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20200 loss tensor(1.5022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2843452873248149\n",
      "gzsl: unseen=0.1040 , seen=0.3572 , h=0.1610\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20400 loss tensor(1.5043, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2870176037089957\n",
      "gzsl: unseen=0.1036 , seen=0.3593 , h=0.1609\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20600 loss tensor(1.5046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2869622364773573\n",
      "gzsl: unseen=0.1050 , seen=0.3595 , h=0.1625\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20800 loss tensor(1.5035, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.28730686924571885\n",
      "gzsl: unseen=0.1057 , seen=0.3618 , h=0.1636\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21000 loss tensor(1.5051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2862955698106906\n",
      "gzsl: unseen=0.1060 , seen=0.3627 , h=0.1641\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21200 loss tensor(1.5021, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.28870686924571887\n",
      "gzsl: unseen=0.1040 , seen=0.3667 , h=0.1620\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21400 loss tensor(1.5036, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2876955698106906\n",
      "gzsl: unseen=0.1057 , seen=0.3661 , h=0.1640\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21600 loss tensor(1.5018, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.28930686924571886\n",
      "gzsl: unseen=0.1084 , seen=0.3692 , h=0.1676\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21800 loss tensor(1.5027, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2899791856298997\n",
      "gzsl: unseen=0.1070 , seen=0.3684 , h=0.1659\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22000 loss tensor(1.5017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2909848353474138\n",
      "gzsl: unseen=0.1054 , seen=0.3690 , h=0.1639\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22200 loss tensor(1.5004, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2913181686807471\n",
      "gzsl: unseen=0.1064 , seen=0.3692 , h=0.1652\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 22400 loss tensor(1.5065, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.28992946811577536\n",
      "gzsl: unseen=0.1037 , seen=0.3715 , h=0.1621\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22600 loss tensor(1.5045, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2916799454194964\n",
      "gzsl: unseen=0.1067 , seen=0.3709 , h=0.1657\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22800 loss tensor(1.5024, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.29200743421747033\n",
      "gzsl: unseen=0.1060 , seen=0.3732 , h=0.1651\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23000 loss tensor(1.5014, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.29094661208616307\n",
      "gzsl: unseen=0.1063 , seen=0.3716 , h=0.1654\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23200 loss tensor(1.5049, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.291624578187858\n",
      "gzsl: unseen=0.1084 , seen=0.3785 , h=0.1685\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23400 loss tensor(1.5029, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.29136799573396177\n",
      "gzsl: unseen=0.1074 , seen=0.3798 , h=0.1674\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23600 loss tensor(1.5009, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.29380632853430294\n",
      "gzsl: unseen=0.1070 , seen=0.3804 , h=0.1671\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23800 loss tensor(1.5025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.29113401215012213\n",
      "gzsl: unseen=0.1067 , seen=0.3783 , h=0.1665\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24000 loss tensor(1.5000, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2924673454834555\n",
      "gzsl: unseen=0.1067 , seen=0.3841 , h=0.1670\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24200 loss tensor(1.5017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.29381197825181704\n",
      "gzsl: unseen=0.1057 , seen=0.3870 , h=0.1660\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24400 loss tensor(1.5023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.29848994435351195\n",
      "gzsl: unseen=0.1070 , seen=0.3878 , h=0.1677\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24600 loss tensor(1.5018, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.29782892740435946\n",
      "gzsl: unseen=0.1070 , seen=0.3904 , h=0.1680\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24800 loss tensor(1.5004, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2975012437885402\n",
      "gzsl: unseen=0.1070 , seen=0.3904 , h=0.1680\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25000 loss tensor(1.5015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.2992175853299537\n",
      "gzsl: unseen=0.1081 , seen=0.3944 , h=0.1697\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25200 loss tensor(1.5023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3009395765888813\n",
      "gzsl: unseen=0.1078 , seen=0.3978 , h=0.1696\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25400 loss tensor(1.4969, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3016231924080904\n",
      "gzsl: unseen=0.1094 , seen=0.3952 , h=0.1714\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25600 loss tensor(1.5010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3036175426905762\n",
      "gzsl: unseen=0.1077 , seen=0.4022 , h=0.1700\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25800 loss tensor(1.5002, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3006175426905763\n",
      "gzsl: unseen=0.1098 , seen=0.4025 , h=0.1725\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26000 loss tensor(1.5022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3033181076623277\n",
      "gzsl: unseen=0.1114 , seen=0.4022 , h=0.1745\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26200 loss tensor(1.4992, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3050457486387694\n",
      "gzsl: unseen=0.1118 , seen=0.4047 , h=0.1752\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26400 loss tensor(1.5010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.30533505681487005\n",
      "gzsl: unseen=0.1114 , seen=0.4072 , h=0.1750\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26600 loss tensor(1.5016, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3057067655879219\n",
      "gzsl: unseen=0.1108 , seen=0.4083 , h=0.1743\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26800 loss tensor(1.5009, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3043564831020462\n",
      "gzsl: unseen=0.1101 , seen=0.4083 , h=0.1734\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27000 loss tensor(1.5024, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.306085334732241\n",
      "gzsl: unseen=0.1094 , seen=0.4080 , h=0.1726\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27200 loss tensor(1.5009, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3073746429083416\n",
      "gzsl: unseen=0.1098 , seen=0.4089 , h=0.1731\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27400 loss tensor(1.5006, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3077520013989077\n",
      "gzsl: unseen=0.1108 , seen=0.4085 , h=0.1743\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27600 loss tensor(1.4991, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.31079481590238733\n",
      "gzsl: unseen=0.1114 , seen=0.4092 , h=0.1752\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27800 loss tensor(1.5025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3101337989532348\n",
      "gzsl: unseen=0.1111 , seen=0.4094 , h=0.1748\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 28000 loss tensor(1.5007, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3138117650549297\n",
      "gzsl: unseen=0.1098 , seen=0.4161 , h=0.1737\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28200 loss tensor(1.5005, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3134840814391105\n",
      "gzsl: unseen=0.1098 , seen=0.4175 , h=0.1738\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28400 loss tensor(1.4996, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3134162467580683\n",
      "gzsl: unseen=0.1108 , seen=0.4182 , h=0.1751\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28600 loss tensor(1.4983, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.31382306448995795\n",
      "gzsl: unseen=0.1084 , seen=0.4159 , h=0.1720\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28800 loss tensor(1.5003, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3137936052486343\n",
      "gzsl: unseen=0.1101 , seen=0.4195 , h=0.1744\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29000 loss tensor(1.5010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.31520042298052403\n",
      "gzsl: unseen=0.1101 , seen=0.4229 , h=0.1747\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29200 loss tensor(1.5047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3155394060313715\n",
      "gzsl: unseen=0.1091 , seen=0.4229 , h=0.1734\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29400 loss tensor(1.5026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.316200422980524\n",
      "gzsl: unseen=0.1101 , seen=0.4261 , h=0.1750\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29600 loss tensor(1.4993, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3175507054663997\n",
      "gzsl: unseen=0.1098 , seen=0.4266 , h=0.1746\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29800 loss tensor(1.5015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.31788403879973304\n",
      "gzsl: unseen=0.1108 , seen=0.4258 , h=0.1758\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30000 loss tensor(1.4994, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3205507054663997\n",
      "gzsl: unseen=0.1121 , seen=0.4286 , h=0.1777\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30200 loss tensor(1.4995, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.31955635518391384\n",
      "gzsl: unseen=0.1114 , seen=0.4289 , h=0.1769\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30400 loss tensor(1.4982, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.32055635518391384\n",
      "gzsl: unseen=0.1114 , seen=0.4287 , h=0.1769\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30600 loss tensor(1.4997, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3192173721330664\n",
      "gzsl: unseen=0.1104 , seen=0.4288 , h=0.1756\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30800 loss tensor(1.5012, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3202288663859399\n",
      "gzsl: unseen=0.1101 , seen=0.4320 , h=0.1754\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31000 loss tensor(1.4992, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3232514652559964\n",
      "gzsl: unseen=0.1101 , seen=0.4302 , h=0.1753\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31200 loss tensor(1.4985, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3232345161034541\n",
      "gzsl: unseen=0.1087 , seen=0.4331 , h=0.1738\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31400 loss tensor(1.4972, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.322634516103454\n",
      "gzsl: unseen=0.1094 , seen=0.4325 , h=0.1747\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31600 loss tensor(1.4974, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.32289553305260654\n",
      "gzsl: unseen=0.1104 , seen=0.4333 , h=0.1760\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31800 loss tensor(1.4970, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.32263451610345406\n",
      "gzsl: unseen=0.1108 , seen=0.4342 , h=0.1765\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32000 loss tensor(1.4972, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3235238242795547\n",
      "gzsl: unseen=0.1108 , seen=0.4359 , h=0.1766\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32200 loss tensor(1.5001, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3221961406637355\n",
      "gzsl: unseen=0.1107 , seen=0.4338 , h=0.1764\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32400 loss tensor(1.4989, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3248684570479163\n",
      "gzsl: unseen=0.1097 , seen=0.4350 , h=0.1753\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32600 loss tensor(1.4982, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3268684570479162\n",
      "gzsl: unseen=0.1111 , seen=0.4411 , h=0.1775\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32800 loss tensor(1.4958, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.32351252484452636\n",
      "gzsl: unseen=0.1084 , seen=0.4417 , h=0.1741\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33000 loss tensor(1.4985, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3255961406637355\n",
      "gzsl: unseen=0.1124 , seen=0.4427 , h=0.1793\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33200 loss tensor(1.4992, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3282132846341231\n",
      "gzsl: unseen=0.1124 , seen=0.4429 , h=0.1793\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33400 loss tensor(1.4975, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.327207634916609\n",
      "gzsl: unseen=0.1097 , seen=0.4440 , h=0.1760\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 33600 loss tensor(1.5012, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.32822668253565657\n",
      "gzsl: unseen=0.1097 , seen=0.4454 , h=0.1761\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33800 loss tensor(1.4964, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3279171587261328\n",
      "gzsl: unseen=0.1107 , seen=0.4454 , h=0.1774\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34000 loss tensor(1.4976, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3289296688149141\n",
      "gzsl: unseen=0.1101 , seen=0.4467 , h=0.1766\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34200 loss tensor(1.4998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3293070273054801\n",
      "gzsl: unseen=0.1121 , seen=0.4468 , h=0.1792\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34400 loss tensor(1.4991, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33306295950887\n",
      "gzsl: unseen=0.1118 , seen=0.4476 , h=0.1788\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34600 loss tensor(1.5013, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33236921683751297\n",
      "gzsl: unseen=0.1117 , seen=0.4498 , h=0.1790\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34800 loss tensor(1.4978, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33071263438361675\n",
      "gzsl: unseen=0.1104 , seen=0.4485 , h=0.1772\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35000 loss tensor(1.5006, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3294165084756265\n",
      "gzsl: unseen=0.1107 , seen=0.4477 , h=0.1775\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35200 loss tensor(1.4956, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.332449234197831\n",
      "gzsl: unseen=0.1111 , seen=0.4494 , h=0.1781\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35400 loss tensor(1.4978, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33209209134068807\n",
      "gzsl: unseen=0.1111 , seen=0.4505 , h=0.1782\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35600 loss tensor(1.4989, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3330807919056598\n",
      "gzsl: unseen=0.1097 , seen=0.4495 , h=0.1764\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35800 loss tensor(1.4939, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33208644162317397\n",
      "gzsl: unseen=0.1084 , seen=0.4512 , h=0.1748\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36000 loss tensor(1.4974, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33477005744238303\n",
      "gzsl: unseen=0.1111 , seen=0.4519 , h=0.1783\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36200 loss tensor(1.4926, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33435310828984055\n",
      "gzsl: unseen=0.1101 , seen=0.4520 , h=0.1770\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36400 loss tensor(1.4946, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33435875800735476\n",
      "gzsl: unseen=0.1087 , seen=0.4524 , h=0.1753\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36600 loss tensor(1.4971, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33368079190565986\n",
      "gzsl: unseen=0.1121 , seen=0.4543 , h=0.1798\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36800 loss tensor(1.4951, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3367304667804067\n",
      "gzsl: unseen=0.1111 , seen=0.4555 , h=0.1786\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37000 loss tensor(1.4944, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33371916734537843\n",
      "gzsl: unseen=0.1097 , seen=0.4594 , h=0.1771\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37200 loss tensor(1.4980, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33506380011374\n",
      "gzsl: unseen=0.1098 , seen=0.4589 , h=0.1771\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37400 loss tensor(1.4926, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33641977495650727\n",
      "gzsl: unseen=0.1108 , seen=0.4570 , h=0.1783\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37600 loss tensor(1.4942, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.33942538203464395\n",
      "gzsl: unseen=0.1118 , seen=0.4582 , h=0.1797\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37800 loss tensor(1.4938, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3420863989837965\n",
      "gzsl: unseen=0.1128 , seen=0.4598 , h=0.1811\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38000 loss tensor(1.4943, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34484680832182024\n",
      "gzsl: unseen=0.1131 , seen=0.4597 , h=0.1816\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38200 loss tensor(1.4976, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3438468083218202\n",
      "gzsl: unseen=0.1131 , seen=0.4626 , h=0.1818\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38400 loss tensor(1.4962, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3451857913726677\n",
      "gzsl: unseen=0.1128 , seen=0.4623 , h=0.1813\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38600 loss tensor(1.4961, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34619144109018174\n",
      "gzsl: unseen=0.1128 , seen=0.4651 , h=0.1815\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38800 loss tensor(1.4977, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34519163590802715\n",
      "gzsl: unseen=0.1114 , seen=0.4669 , h=0.1799\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39000 loss tensor(1.4958, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34321544543183663\n",
      "gzsl: unseen=0.1125 , seen=0.4663 , h=0.1812\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 39200 loss tensor(1.4954, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34549667801441236\n",
      "gzsl: unseen=0.1114 , seen=0.4657 , h=0.1799\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39400 loss tensor(1.4928, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34563566106525984\n",
      "gzsl: unseen=0.1111 , seen=0.4674 , h=0.1795\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39600 loss tensor(1.4959, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3470335625987545\n",
      "gzsl: unseen=0.1125 , seen=0.4693 , h=0.1815\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39800 loss tensor(1.4948, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3486707700240975\n",
      "gzsl: unseen=0.1112 , seen=0.4686 , h=0.1797\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40000 loss tensor(1.4925, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34902226316372625\n",
      "gzsl: unseen=0.1111 , seen=0.4732 , h=0.1800\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40200 loss tensor(1.4954, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3496707700240975\n",
      "gzsl: unseen=0.1118 , seen=0.4739 , h=0.1809\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40400 loss tensor(1.4954, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.35112988332459016\n",
      "gzsl: unseen=0.1101 , seen=0.4719 , h=0.1786\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40600 loss tensor(1.4946, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34952302295332294\n",
      "gzsl: unseen=0.1084 , seen=0.4712 , h=0.1763\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40800 loss tensor(1.4949, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.349839407134114\n",
      "gzsl: unseen=0.1094 , seen=0.4709 , h=0.1776\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41000 loss tensor(1.4944, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.34986321665792347\n",
      "gzsl: unseen=0.1094 , seen=0.4717 , h=0.1777\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41200 loss tensor(1.4966, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.35114663765928716\n",
      "gzsl: unseen=0.1091 , seen=0.4768 , h=0.1776\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41400 loss tensor(1.4953, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3504745160929517\n",
      "gzsl: unseen=0.1118 , seen=0.4736 , h=0.1809\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41600 loss tensor(1.4926, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3512020048909257\n",
      "gzsl: unseen=0.1088 , seen=0.4762 , h=0.1771\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41800 loss tensor(1.4911, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3511963551734116\n",
      "gzsl: unseen=0.1105 , seen=0.4742 , h=0.1792\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42000 loss tensor(1.4922, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3525409879417732\n",
      "gzsl: unseen=0.1098 , seen=0.4800 , h=0.1787\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42200 loss tensor(1.4985, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.352140987941773\n",
      "gzsl: unseen=0.1091 , seen=0.4802 , h=0.1778\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42400 loss tensor(1.4909, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.35279635517341146\n",
      "gzsl: unseen=0.1088 , seen=0.4822 , h=0.1775\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42600 loss tensor(1.4931, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3538136939616445\n",
      "gzsl: unseen=0.1071 , seen=0.4831 , h=0.1753\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42800 loss tensor(1.4966, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3561794060208691\n",
      "gzsl: unseen=0.1072 , seen=0.4791 , h=0.1751\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43000 loss tensor(1.4933, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.35589267589924717\n",
      "gzsl: unseen=0.1092 , seen=0.4802 , h=0.1779\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43200 loss tensor(1.4919, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.357237503485454\n",
      "gzsl: unseen=0.1079 , seen=0.4837 , h=0.1764\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43400 loss tensor(1.4864, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3585470272949778\n",
      "gzsl: unseen=0.1082 , seen=0.4856 , h=0.1770\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43600 loss tensor(1.4929, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3613562282635008\n",
      "gzsl: unseen=0.1089 , seen=0.4811 , h=0.1776\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43800 loss tensor(1.4939, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3593388894752679\n",
      "gzsl: unseen=0.1051 , seen=0.4815 , h=0.1726\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44000 loss tensor(1.4928, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3580057509597798\n",
      "gzsl: unseen=0.1052 , seen=0.4871 , h=0.1730\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44200 loss tensor(1.4915, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36195603344565547\n",
      "gzsl: unseen=0.1058 , seen=0.4887 , h=0.1740\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44400 loss tensor(1.4923, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.361011400677294\n",
      "gzsl: unseen=0.1065 , seen=0.4921 , h=0.1751\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44600 loss tensor(1.4904, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3586170503948082\n",
      "gzsl: unseen=0.1062 , seen=0.4869 , h=0.1744\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 44800 loss tensor(1.4906, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36255603344565557\n",
      "gzsl: unseen=0.1066 , seen=0.4853 , h=0.1748\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45000 loss tensor(1.4911, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36092895744096515\n",
      "gzsl: unseen=0.1062 , seen=0.4865 , h=0.1744\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45200 loss tensor(1.4913, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36063545222683097\n",
      "gzsl: unseen=0.1035 , seen=0.4903 , h=0.1710\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45400 loss tensor(1.4917, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3626907768190919\n",
      "gzsl: unseen=0.1048 , seen=0.4949 , h=0.1730\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45600 loss tensor(1.4922, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3626126158995516\n",
      "gzsl: unseen=0.1055 , seen=0.4913 , h=0.1737\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45800 loss tensor(1.4898, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36154045169383875\n",
      "gzsl: unseen=0.1042 , seen=0.4936 , h=0.1721\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46000 loss tensor(1.4946, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.362907531153789\n",
      "gzsl: unseen=0.1042 , seen=0.4954 , h=0.1721\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46200 loss tensor(1.4949, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3628750002494298\n",
      "gzsl: unseen=0.1035 , seen=0.4938 , h=0.1712\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46400 loss tensor(1.4923, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36085220656152805\n",
      "gzsl: unseen=0.1045 , seen=0.4971 , h=0.1727\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46600 loss tensor(1.4943, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3624804977884761\n",
      "gzsl: unseen=0.1038 , seen=0.4936 , h=0.1716\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46800 loss tensor(1.4890, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36483078027435184\n",
      "gzsl: unseen=0.1045 , seen=0.4942 , h=0.1725\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47000 loss tensor(1.4897, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36270329147637786\n",
      "gzsl: unseen=0.1035 , seen=0.4940 , h=0.1712\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47200 loss tensor(1.4908, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3661315400639486\n",
      "gzsl: unseen=0.1012 , seen=0.4972 , h=0.1681\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47400 loss tensor(1.4897, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3651756078605587\n",
      "gzsl: unseen=0.1042 , seen=0.4984 , h=0.1723\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47600 loss tensor(1.4937, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36452589034643446\n",
      "gzsl: unseen=0.1035 , seen=0.4958 , h=0.1712\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47800 loss tensor(1.4891, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3671925570131011\n",
      "gzsl: unseen=0.1025 , seen=0.4983 , h=0.1700\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48000 loss tensor(1.4885, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36825357396225367\n",
      "gzsl: unseen=0.1025 , seen=0.5002 , h=0.1701\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48200 loss tensor(1.4884, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3690479242447395\n",
      "gzsl: unseen=0.1018 , seen=0.5004 , h=0.1692\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48400 loss tensor(1.4892, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36878690729558694\n",
      "gzsl: unseen=0.1021 , seen=0.4998 , h=0.1696\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48600 loss tensor(1.4901, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3694535739622536\n",
      "gzsl: unseen=0.1042 , seen=0.4998 , h=0.1724\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48800 loss tensor(1.4890, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.36925357396225367\n",
      "gzsl: unseen=0.1025 , seen=0.5016 , h=0.1702\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49000 loss tensor(1.4916, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3663145909114062\n",
      "gzsl: unseen=0.1035 , seen=0.5001 , h=0.1715\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49200 loss tensor(1.4948, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3669812575780728\n",
      "gzsl: unseen=0.1045 , seen=0.5059 , h=0.1732\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49400 loss tensor(1.4963, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3694976417588638\n",
      "gzsl: unseen=0.1035 , seen=0.5029 , h=0.1716\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49600 loss tensor(1.4911, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.37327052311479597\n",
      "gzsl: unseen=0.1045 , seen=0.5034 , h=0.1730\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49800 loss tensor(1.4924, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.37058690729558696\n",
      "gzsl: unseen=0.1038 , seen=0.5037 , h=0.1721\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50000 loss tensor(1.4925, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3703371897814627\n",
      "gzsl: unseen=0.1028 , seen=0.5027 , h=0.1707\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50200 loss tensor(1.4918, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.372386907295587\n",
      "gzsl: unseen=0.1031 , seen=0.5036 , h=0.1712\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 50400 loss tensor(1.4936, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3729113244305254\n",
      "gzsl: unseen=0.1041 , seen=0.5058 , h=0.1727\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50600 loss tensor(1.4902, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.37377560786055875\n",
      "gzsl: unseen=0.1008 , seen=0.5038 , h=0.1680\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50800 loss tensor(1.4892, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3729756078605588\n",
      "gzsl: unseen=0.1041 , seen=0.5058 , h=0.1727\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51000 loss tensor(1.4896, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3758479242447395\n",
      "gzsl: unseen=0.1038 , seen=0.5050 , h=0.1722\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51200 loss tensor(1.4919, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3708095488050209\n",
      "gzsl: unseen=0.1004 , seen=0.5049 , h=0.1675\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51400 loss tensor(1.4907, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3775856966418339\n",
      "gzsl: unseen=0.1021 , seen=0.5038 , h=0.1698\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51600 loss tensor(1.4887, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3756354141559582\n",
      "gzsl: unseen=0.1061 , seen=0.5039 , h=0.1753\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51800 loss tensor(1.4921, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.37432024062892033\n",
      "gzsl: unseen=0.1054 , seen=0.5097 , h=0.1747\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52000 loss tensor(1.4861, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3777925570131011\n",
      "gzsl: unseen=0.1078 , seen=0.5102 , h=0.1780\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52200 loss tensor(1.4895, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.37939820673061525\n",
      "gzsl: unseen=0.1061 , seen=0.5123 , h=0.1758\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52400 loss tensor(1.4871, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.37744675623036394\n",
      "gzsl: unseen=0.1051 , seen=0.5068 , h=0.1740\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52600 loss tensor(1.4890, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3784196802256736\n",
      "gzsl: unseen=0.1064 , seen=0.5048 , h=0.1758\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52800 loss tensor(1.4864, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38151338025765313\n",
      "gzsl: unseen=0.1034 , seen=0.5061 , h=0.1718\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53000 loss tensor(1.4881, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3814988143417441\n",
      "gzsl: unseen=0.1031 , seen=0.5067 , h=0.1713\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53200 loss tensor(1.4917, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38153718978146267\n",
      "gzsl: unseen=0.1024 , seen=0.5076 , h=0.1704\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53400 loss tensor(1.4911, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3803301772317277\n",
      "gzsl: unseen=0.1048 , seen=0.5081 , h=0.1737\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53600 loss tensor(1.4876, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3862398532197194\n",
      "gzsl: unseen=0.1058 , seen=0.5095 , h=0.1752\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53800 loss tensor(1.4933, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3813788789099444\n",
      "gzsl: unseen=0.1052 , seen=0.5114 , h=0.1745\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54000 loss tensor(1.4897, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3841673846570707\n",
      "gzsl: unseen=0.1044 , seen=0.5105 , h=0.1734\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54200 loss tensor(1.4904, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38691766714294645\n",
      "gzsl: unseen=0.1051 , seen=0.5113 , h=0.1744\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54400 loss tensor(1.4865, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3856024936159085\n",
      "gzsl: unseen=0.1051 , seen=0.5119 , h=0.1744\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54600 loss tensor(1.4850, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38592589034643454\n",
      "gzsl: unseen=0.1061 , seen=0.5115 , h=0.1758\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54800 loss tensor(1.4839, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38849506827288993\n",
      "gzsl: unseen=0.1068 , seen=0.5137 , h=0.1769\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55000 loss tensor(1.4863, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38371049784623884\n",
      "gzsl: unseen=0.1071 , seen=0.5160 , h=0.1774\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55200 loss tensor(1.4868, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3861050003071926\n",
      "gzsl: unseen=0.1034 , seen=0.5193 , h=0.1725\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55400 loss tensor(1.4884, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3873886161264016\n",
      "gzsl: unseen=0.1055 , seen=0.5208 , h=0.1754\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55600 loss tensor(1.4869, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3877219920991124\n",
      "gzsl: unseen=0.1058 , seen=0.5250 , h=0.1761\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55800 loss tensor(1.4887, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38780112621518287\n",
      "gzsl: unseen=0.1061 , seen=0.5253 , h=0.1766\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 56000 loss tensor(1.4907, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38604636659467334\n",
      "gzsl: unseen=0.1071 , seen=0.5283 , h=0.1781\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56200 loss tensor(1.4874, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3847085941975788\n",
      "gzsl: unseen=0.1064 , seen=0.5245 , h=0.1770\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56400 loss tensor(1.4866, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38475125652259073\n",
      "gzsl: unseen=0.1075 , seen=0.5253 , h=0.1784\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56600 loss tensor(1.4908, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38593430737004836\n",
      "gzsl: unseen=0.1058 , seen=0.5258 , h=0.1762\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56800 loss tensor(1.4846, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39016372397199445\n",
      "gzsl: unseen=0.1075 , seen=0.5287 , h=0.1786\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57000 loss tensor(1.4851, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3922461291374505\n",
      "gzsl: unseen=0.1067 , seen=0.5294 , h=0.1777\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57200 loss tensor(1.4874, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3885457589835444\n",
      "gzsl: unseen=0.1054 , seen=0.5310 , h=0.1760\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57400 loss tensor(1.4921, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3885217546418896\n",
      "gzsl: unseen=0.1068 , seen=0.5298 , h=0.1777\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57600 loss tensor(1.4913, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.38888337920217103\n",
      "gzsl: unseen=0.1071 , seen=0.5359 , h=0.1785\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57800 loss tensor(1.4905, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.393623530267394\n",
      "gzsl: unseen=0.1054 , seen=0.5353 , h=0.1761\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58000 loss tensor(1.4826, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39283240382641155\n",
      "gzsl: unseen=0.1088 , seen=0.5357 , h=0.1808\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58200 loss tensor(1.4919, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39426186306773514\n",
      "gzsl: unseen=0.1055 , seen=0.5366 , h=0.1763\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58400 loss tensor(1.4844, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3922562559895985\n",
      "gzsl: unseen=0.1081 , seen=0.5358 , h=0.1799\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58600 loss tensor(1.4890, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39412429005699073\n",
      "gzsl: unseen=0.1081 , seen=0.5419 , h=0.1802\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58800 loss tensor(1.4897, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3943129906219625\n",
      "gzsl: unseen=0.1054 , seen=0.5384 , h=0.1763\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59000 loss tensor(1.4847, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39586186306773513\n",
      "gzsl: unseen=0.1071 , seen=0.5376 , h=0.1786\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59200 loss tensor(1.4874, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3957997207435846\n",
      "gzsl: unseen=0.1047 , seen=0.5407 , h=0.1755\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59400 loss tensor(1.4867, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39412872455224707\n",
      "gzsl: unseen=0.1064 , seen=0.5406 , h=0.1778\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59600 loss tensor(1.4901, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3956915171269042\n",
      "gzsl: unseen=0.1064 , seen=0.5445 , h=0.1780\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59800 loss tensor(1.4817, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39801102017861273\n",
      "gzsl: unseen=0.1091 , seen=0.5439 , h=0.1818\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60000 loss tensor(1.4851, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3932495477967992\n",
      "gzsl: unseen=0.1088 , seen=0.5438 , h=0.1813\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60200 loss tensor(1.4869, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39517965728862925\n",
      "gzsl: unseen=0.1074 , seen=0.5417 , h=0.1793\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60400 loss tensor(1.4791, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39414006662665285\n",
      "gzsl: unseen=0.1068 , seen=0.5434 , h=0.1785\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60600 loss tensor(1.4858, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3952281169411183\n",
      "gzsl: unseen=0.1077 , seen=0.5452 , h=0.1799\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60800 loss tensor(1.4887, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3948392641976786\n",
      "gzsl: unseen=0.1068 , seen=0.5446 , h=0.1786\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61000 loss tensor(1.4876, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39504510873303805\n",
      "gzsl: unseen=0.1078 , seen=0.5440 , h=0.1799\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61200 loss tensor(1.4891, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39675686360072737\n",
      "gzsl: unseen=0.1067 , seen=0.5404 , h=0.1783\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61400 loss tensor(1.4837, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3916506489114619\n",
      "gzsl: unseen=0.1064 , seen=0.5431 , h=0.1780\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 61600 loss tensor(1.4879, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39716816303575564\n",
      "gzsl: unseen=0.1078 , seen=0.5449 , h=0.1800\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61800 loss tensor(1.4883, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3978234876280166\n",
      "gzsl: unseen=0.1084 , seen=0.5415 , h=0.1807\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62000 loss tensor(1.4845, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3951295927781917\n",
      "gzsl: unseen=0.1071 , seen=0.5478 , h=0.1792\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62200 loss tensor(1.4918, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3953920151989426\n",
      "gzsl: unseen=0.1091 , seen=0.5436 , h=0.1817\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62400 loss tensor(1.4876, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39238052094606907\n",
      "gzsl: unseen=0.1108 , seen=0.5479 , h=0.1843\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62600 loss tensor(1.4867, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3944065811148516\n",
      "gzsl: unseen=0.1094 , seen=0.5496 , h=0.1825\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62800 loss tensor(1.4886, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3923126862650268\n",
      "gzsl: unseen=0.1101 , seen=0.5513 , h=0.1836\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63000 loss tensor(1.4862, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3929705889117664\n",
      "gzsl: unseen=0.1094 , seen=0.5476 , h=0.1824\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63200 loss tensor(1.4859, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39338621330296064\n",
      "gzsl: unseen=0.1071 , seen=0.5462 , h=0.1790\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63400 loss tensor(1.4856, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39820911652995283\n",
      "gzsl: unseen=0.1098 , seen=0.5499 , h=0.1831\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63600 loss tensor(1.4829, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39537023734694854\n",
      "gzsl: unseen=0.1074 , seen=0.5489 , h=0.1797\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63800 loss tensor(1.4838, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39568560569183175\n",
      "gzsl: unseen=0.1077 , seen=0.5492 , h=0.1801\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64000 loss tensor(1.4833, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39567002394001505\n",
      "gzsl: unseen=0.1064 , seen=0.5522 , h=0.1785\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64200 loss tensor(1.4796, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3939478378632421\n",
      "gzsl: unseen=0.1071 , seen=0.5523 , h=0.1794\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64400 loss tensor(1.4842, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39574779522386466\n",
      "gzsl: unseen=0.1078 , seen=0.5506 , h=0.1803\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64600 loss tensor(1.4836, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3976912554093459\n",
      "gzsl: unseen=0.1084 , seen=0.5513 , h=0.1812\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64800 loss tensor(1.4875, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4000855630524543\n",
      "gzsl: unseen=0.1108 , seen=0.5517 , h=0.1845\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65000 loss tensor(1.4853, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39338617066358317\n",
      "gzsl: unseen=0.1078 , seen=0.5527 , h=0.1804\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65200 loss tensor(1.4841, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39911603812968566\n",
      "gzsl: unseen=0.1115 , seen=0.5535 , h=0.1856\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65400 loss tensor(1.4854, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3969690266931955\n",
      "gzsl: unseen=0.1105 , seen=0.5510 , h=0.1840\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65600 loss tensor(1.4865, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3987318192678525\n",
      "gzsl: unseen=0.1121 , seen=0.5538 , h=0.1865\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65800 loss tensor(1.4921, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39452188266504506\n",
      "gzsl: unseen=0.1071 , seen=0.5518 , h=0.1794\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66000 loss tensor(1.4815, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39645828766141394\n",
      "gzsl: unseen=0.1091 , seen=0.5503 , h=0.1821\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66200 loss tensor(1.4844, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39591175581289717\n",
      "gzsl: unseen=0.1106 , seen=0.5507 , h=0.1842\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66400 loss tensor(1.4830, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3947127716488049\n",
      "gzsl: unseen=0.1101 , seen=0.5543 , h=0.1838\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66600 loss tensor(1.4899, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40107080231869985\n",
      "gzsl: unseen=0.1115 , seen=0.5564 , h=0.1857\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66800 loss tensor(1.4883, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3974889621249953\n",
      "gzsl: unseen=0.1085 , seen=0.5563 , h=0.1815\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67000 loss tensor(1.4904, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39681991222169527\n",
      "gzsl: unseen=0.1072 , seen=0.5565 , h=0.1797\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 67200 loss tensor(1.4811, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39761235885552126\n",
      "gzsl: unseen=0.1094 , seen=0.5578 , h=0.1830\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67400 loss tensor(1.4867, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3999160381296856\n",
      "gzsl: unseen=0.1119 , seen=0.5567 , h=0.1863\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67600 loss tensor(1.4828, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39959521488513366\n",
      "gzsl: unseen=0.1122 , seen=0.5565 , h=0.1867\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67800 loss tensor(1.4830, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40011038841217156\n",
      "gzsl: unseen=0.1115 , seen=0.5555 , h=0.1857\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68000 loss tensor(1.4833, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39944372174550485\n",
      "gzsl: unseen=0.1131 , seen=0.5532 , h=0.1879\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68200 loss tensor(1.4873, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39957140536132413\n",
      "gzsl: unseen=0.1124 , seen=0.5565 , h=0.1870\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68400 loss tensor(1.4879, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40161781375519007\n",
      "gzsl: unseen=0.1130 , seen=0.5573 , h=0.1878\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68600 loss tensor(1.4822, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40127883070434267\n",
      "gzsl: unseen=0.1144 , seen=0.5577 , h=0.1898\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68800 loss tensor(1.4843, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4029242659016784\n",
      "gzsl: unseen=0.1163 , seen=0.5577 , h=0.1924\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69000 loss tensor(1.4814, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4011882023353986\n",
      "gzsl: unseen=0.1150 , seen=0.5581 , h=0.1908\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69200 loss tensor(1.4837, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3971387222784971\n",
      "gzsl: unseen=0.1160 , seen=0.5554 , h=0.1919\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69400 loss tensor(1.4795, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4001613211485537\n",
      "gzsl: unseen=0.1156 , seen=0.5548 , h=0.1913\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69600 loss tensor(1.4858, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3971102788730812\n",
      "gzsl: unseen=0.1135 , seen=0.5562 , h=0.1885\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69800 loss tensor(1.4804, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39876681868759983\n",
      "gzsl: unseen=0.1147 , seen=0.5618 , h=0.1905\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70000 loss tensor(1.4839, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40054554001038684\n",
      "gzsl: unseen=0.1150 , seen=0.5647 , h=0.1911\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70200 loss tensor(1.4817, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40051281428818236\n",
      "gzsl: unseen=0.1126 , seen=0.5608 , h=0.1876\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70400 loss tensor(1.4842, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3994089401961726\n",
      "gzsl: unseen=0.1139 , seen=0.5580 , h=0.1891\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70600 loss tensor(1.4864, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39941668838019195\n",
      "gzsl: unseen=0.1146 , seen=0.5585 , h=0.1902\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70800 loss tensor(1.4784, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3998108438448326\n",
      "gzsl: unseen=0.1140 , seen=0.5639 , h=0.1897\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71000 loss tensor(1.4841, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4029137874847126\n",
      "gzsl: unseen=0.1116 , seen=0.5619 , h=0.1862\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71200 loss tensor(1.4802, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3998233539336139\n",
      "gzsl: unseen=0.1133 , seen=0.5635 , h=0.1887\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71400 loss tensor(1.4809, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40219623528954607\n",
      "gzsl: unseen=0.1156 , seen=0.5643 , h=0.1919\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71600 loss tensor(1.4794, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3975748044338651\n",
      "gzsl: unseen=0.1123 , seen=0.5653 , h=0.1874\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71800 loss tensor(1.4835, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3974890047643729\n",
      "gzsl: unseen=0.1109 , seen=0.5590 , h=0.1851\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72000 loss tensor(1.4774, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3994543753935084\n",
      "gzsl: unseen=0.1157 , seen=0.5605 , h=0.1919\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72200 loss tensor(1.4810, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39962710000246804\n",
      "gzsl: unseen=0.1104 , seen=0.5666 , h=0.1847\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72400 loss tensor(1.4874, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4008641126099657\n",
      "gzsl: unseen=0.1148 , seen=0.5599 , h=0.1905\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72600 loss tensor(1.4819, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39809357185128946\n",
      "gzsl: unseen=0.1137 , seen=0.5622 , h=0.1892\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 72800 loss tensor(1.4794, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4027962352895461\n",
      "gzsl: unseen=0.1148 , seen=0.5625 , h=0.1906\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73000 loss tensor(1.4896, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4007792861370037\n",
      "gzsl: unseen=0.1161 , seen=0.5668 , h=0.1927\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73200 loss tensor(1.4784, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4004528131749375\n",
      "gzsl: unseen=0.1164 , seen=0.5692 , h=0.1932\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73400 loss tensor(1.4798, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3947873571620238\n",
      "gzsl: unseen=0.1167 , seen=0.5642 , h=0.1934\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73600 loss tensor(1.4844, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3978288088332827\n",
      "gzsl: unseen=0.1147 , seen=0.5641 , h=0.1906\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73800 loss tensor(1.4856, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3967023358712165\n",
      "gzsl: unseen=0.1133 , seen=0.5605 , h=0.1886\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74000 loss tensor(1.4838, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3971136353062448\n",
      "gzsl: unseen=0.1163 , seen=0.5555 , h=0.1924\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74200 loss tensor(1.4895, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3988538290108452\n",
      "gzsl: unseen=0.1150 , seen=0.5632 , h=0.1910\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74400 loss tensor(1.4840, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3998596735462046\n",
      "gzsl: unseen=0.1139 , seen=0.5641 , h=0.1896\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74600 loss tensor(1.4813, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39770253068906186\n",
      "gzsl: unseen=0.1136 , seen=0.5556 , h=0.1886\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74800 loss tensor(1.4762, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3978528131749375\n",
      "gzsl: unseen=0.1167 , seen=0.5622 , h=0.1932\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75000 loss tensor(1.4793, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39815049116676987\n",
      "gzsl: unseen=0.1136 , seen=0.5642 , h=0.1892\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75200 loss tensor(1.4777, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3971532640390938\n",
      "gzsl: unseen=0.1150 , seen=0.5614 , h=0.1909\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75400 loss tensor(1.4806, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39812517219849575\n",
      "gzsl: unseen=0.1144 , seen=0.5637 , h=0.1901\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75600 loss tensor(1.4818, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4008653232637188\n",
      "gzsl: unseen=0.1157 , seen=0.5616 , h=0.1918\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75800 loss tensor(1.4794, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3998312301407887\n",
      "gzsl: unseen=0.1169 , seen=0.5634 , h=0.1937\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76000 loss tensor(1.4849, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3984310779623209\n",
      "gzsl: unseen=0.1147 , seen=0.5653 , h=0.1907\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76200 loss tensor(1.4784, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40086960558050727\n",
      "gzsl: unseen=0.1168 , seen=0.5660 , h=0.1936\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76400 loss tensor(1.4860, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3954086739101097\n",
      "gzsl: unseen=0.1110 , seen=0.5678 , h=0.1857\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76600 loss tensor(1.4835, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40118735716202386\n",
      "gzsl: unseen=0.1156 , seen=0.5648 , h=0.1920\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76800 loss tensor(1.4775, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4035206904953572\n",
      "gzsl: unseen=0.1163 , seen=0.5636 , h=0.1929\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77000 loss tensor(1.4798, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39714176978622023\n",
      "gzsl: unseen=0.1144 , seen=0.5686 , h=0.1904\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77200 loss tensor(1.4828, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39843571184392723\n",
      "gzsl: unseen=0.1180 , seen=0.5623 , h=0.1951\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77400 loss tensor(1.4780, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3982029389138406\n",
      "gzsl: unseen=0.1177 , seen=0.5651 , h=0.1948\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77600 loss tensor(1.4775, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39490116328833613\n",
      "gzsl: unseen=0.1156 , seen=0.5679 , h=0.1921\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77800 loss tensor(1.4799, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39811727183600853\n",
      "gzsl: unseen=0.1160 , seen=0.5651 , h=0.1924\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78000 loss tensor(1.4832, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3971643686562767\n",
      "gzsl: unseen=0.1153 , seen=0.5636 , h=0.1914\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78200 loss tensor(1.4745, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3988922044505637\n",
      "gzsl: unseen=0.1154 , seen=0.5675 , h=0.1918\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 78400 loss tensor(1.4803, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.397814086170401\n",
      "gzsl: unseen=0.1134 , seen=0.5676 , h=0.1890\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78600 loss tensor(1.4821, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39784681189260546\n",
      "gzsl: unseen=0.1120 , seen=0.5703 , h=0.1872\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78800 loss tensor(1.4830, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39789785416807794\n",
      "gzsl: unseen=0.1173 , seen=0.5688 , h=0.1945\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79000 loss tensor(1.4817, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3948706214164151\n",
      "gzsl: unseen=0.1133 , seen=0.5671 , h=0.1888\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79200 loss tensor(1.4806, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39781545357112663\n",
      "gzsl: unseen=0.1140 , seen=0.5683 , h=0.1900\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79400 loss tensor(1.4794, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3948120303432732\n",
      "gzsl: unseen=0.1140 , seen=0.5676 , h=0.1899\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79600 loss tensor(1.4842, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3938593265498914\n",
      "gzsl: unseen=0.1167 , seen=0.5666 , h=0.1936\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79800 loss tensor(1.4876, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39726614428178114\n",
      "gzsl: unseen=0.1140 , seen=0.5655 , h=0.1898\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80000 loss tensor(1.4840, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3992435454117247\n",
      "gzsl: unseen=0.1150 , seen=0.5687 , h=0.1914\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80200 loss tensor(1.4810, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40012389475005283\n",
      "gzsl: unseen=0.1144 , seen=0.5729 , h=0.1907\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80400 loss tensor(1.4758, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4005361200687061\n",
      "gzsl: unseen=0.1120 , seen=0.5714 , h=0.1873\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80600 loss tensor(1.4776, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4003134359198946\n",
      "gzsl: unseen=0.1140 , seen=0.5692 , h=0.1900\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80800 loss tensor(1.4785, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3995554478893771\n",
      "gzsl: unseen=0.1134 , seen=0.5713 , h=0.1892\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81000 loss tensor(1.4848, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3971102547177688\n",
      "gzsl: unseen=0.1117 , seen=0.5722 , h=0.1869\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81200 loss tensor(1.4899, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39714980274036754\n",
      "gzsl: unseen=0.1080 , seen=0.5737 , h=0.1818\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81400 loss tensor(1.4759, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3918028293747502\n",
      "gzsl: unseen=0.1124 , seen=0.5705 , h=0.1878\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81600 loss tensor(1.4746, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3985566204722574\n",
      "gzsl: unseen=0.1127 , seen=0.5697 , h=0.1882\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81800 loss tensor(1.4739, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39572720387031113\n",
      "gzsl: unseen=0.1116 , seen=0.5671 , h=0.1865\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82000 loss tensor(1.4805, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39966618692115863\n",
      "gzsl: unseen=0.1144 , seen=0.5709 , h=0.1906\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82200 loss tensor(1.4793, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39683014751019113\n",
      "gzsl: unseen=0.1114 , seen=0.5676 , h=0.1862\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82400 loss tensor(1.4797, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39554088197346793\n",
      "gzsl: unseen=0.1113 , seen=0.5685 , h=0.1862\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82600 loss tensor(1.4835, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39548878579121516\n",
      "gzsl: unseen=0.1134 , seen=0.5704 , h=0.1892\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82800 loss tensor(1.4824, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3957861223529584\n",
      "gzsl: unseen=0.1144 , seen=0.5719 , h=0.1906\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83000 loss tensor(1.4764, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3940605372036445\n",
      "gzsl: unseen=0.1137 , seen=0.5692 , h=0.1896\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83200 loss tensor(1.4741, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39745040578299173\n",
      "gzsl: unseen=0.1127 , seen=0.5696 , h=0.1881\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83400 loss tensor(1.4791, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39773406424157826\n",
      "gzsl: unseen=0.1154 , seen=0.5695 , h=0.1918\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83600 loss tensor(1.4759, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39212720387031114\n",
      "gzsl: unseen=0.1154 , seen=0.5657 , h=0.1916\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83800 loss tensor(1.4781, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3950899964449681\n",
      "gzsl: unseen=0.1127 , seen=0.5681 , h=0.1880\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 84000 loss tensor(1.4810, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39774415302285354\n",
      "gzsl: unseen=0.1120 , seen=0.5690 , h=0.1872\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84200 loss tensor(1.4756, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3957893888338393\n",
      "gzsl: unseen=0.1140 , seen=0.5716 , h=0.1900\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84400 loss tensor(1.4769, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3950799076636929\n",
      "gzsl: unseen=0.1143 , seen=0.5728 , h=0.1906\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84600 loss tensor(1.4783, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3967374206747419\n",
      "gzsl: unseen=0.1163 , seen=0.5717 , h=0.1933\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84800 loss tensor(1.4844, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4004299953317233\n",
      "gzsl: unseen=0.1157 , seen=0.5706 , h=0.1924\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85000 loss tensor(1.4874, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4005069455975105\n",
      "gzsl: unseen=0.1147 , seen=0.5695 , h=0.1910\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85200 loss tensor(1.4793, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3944176800607873\n",
      "gzsl: unseen=0.1138 , seen=0.5708 , h=0.1897\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85400 loss tensor(1.4801, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39850465231315996\n",
      "gzsl: unseen=0.1171 , seen=0.5764 , h=0.1946\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85600 loss tensor(1.4834, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4014820534431035\n",
      "gzsl: unseen=0.1168 , seen=0.5709 , h=0.1939\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85800 loss tensor(1.4725, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.399780277817599\n",
      "gzsl: unseen=0.1167 , seen=0.5756 , h=0.1940\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86000 loss tensor(1.4764, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3991305603034747\n",
      "gzsl: unseen=0.1157 , seen=0.5714 , h=0.1925\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86200 loss tensor(1.4801, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39675876157814005\n",
      "gzsl: unseen=0.1167 , seen=0.5684 , h=0.1937\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86400 loss tensor(1.4799, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40109545134463703\n",
      "gzsl: unseen=0.1141 , seen=0.5697 , h=0.1901\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86600 loss tensor(1.4736, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39642897949581557\n",
      "gzsl: unseen=0.1174 , seen=0.5690 , h=0.1947\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86800 loss tensor(1.4770, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39807869700994\n",
      "gzsl: unseen=0.1147 , seen=0.5738 , h=0.1912\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87000 loss tensor(1.4773, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39907869700993975\n",
      "gzsl: unseen=0.1148 , seen=0.5738 , h=0.1913\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87200 loss tensor(1.4774, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4014356450492375\n",
      "gzsl: unseen=0.1150 , seen=0.5731 , h=0.1916\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87400 loss tensor(1.4806, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3967915772526273\n",
      "gzsl: unseen=0.1177 , seen=0.5697 , h=0.1951\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87600 loss tensor(1.4857, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3953508185762753\n",
      "gzsl: unseen=0.1174 , seen=0.5719 , h=0.1948\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87800 loss tensor(1.4726, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.40046954335432217\n",
      "gzsl: unseen=0.1133 , seen=0.5719 , h=0.1892\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88000 loss tensor(1.4783, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39844694448426565\n",
      "gzsl: unseen=0.1133 , seen=0.5756 , h=0.1893\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88200 loss tensor(1.4806, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39574536367660657\n",
      "gzsl: unseen=0.1133 , seen=0.5791 , h=0.1895\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88400 loss tensor(1.4769, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3983293496497218\n",
      "gzsl: unseen=0.1116 , seen=0.5708 , h=0.1868\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88600 loss tensor(1.4798, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39569545134463696\n",
      "gzsl: unseen=0.1160 , seen=0.5779 , h=0.1932\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88800 loss tensor(1.4775, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3956797174143523\n",
      "gzsl: unseen=0.1140 , seen=0.5801 , h=0.1905\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89000 loss tensor(1.4772, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4017034842987844\n",
      "gzsl: unseen=0.1133 , seen=0.5757 , h=0.1893\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89200 loss tensor(1.4757, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39728980162712285\n",
      "gzsl: unseen=0.1150 , seen=0.5782 , h=0.1919\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89400 loss tensor(1.4794, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39840852640516966\n",
      "gzsl: unseen=0.1150 , seen=0.5763 , h=0.1918\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 89600 loss tensor(1.4791, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3997972269701414\n",
      "gzsl: unseen=0.1141 , seen=0.5733 , h=0.1903\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89800 loss tensor(1.4829, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39764129476675153\n",
      "gzsl: unseen=0.1166 , seen=0.5727 , h=0.1938\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90000 loss tensor(1.4761, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3984525942017798\n",
      "gzsl: unseen=0.1183 , seen=0.5724 , h=0.1961\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90200 loss tensor(1.4779, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3967746281000849\n",
      "gzsl: unseen=0.1170 , seen=0.5761 , h=0.1945\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90400 loss tensor(1.4871, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3974525942017798\n",
      "gzsl: unseen=0.1170 , seen=0.5755 , h=0.1944\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90600 loss tensor(1.4817, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39307971284584764\n",
      "gzsl: unseen=0.1149 , seen=0.5787 , h=0.1918\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90800 loss tensor(1.4771, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39405259420177985\n",
      "gzsl: unseen=0.1164 , seen=0.5783 , h=0.1938\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91000 loss tensor(1.4799, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39541421876206123\n",
      "gzsl: unseen=0.1201 , seen=0.5745 , h=0.1986\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91200 loss tensor(1.4765, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39593951914124714\n",
      "gzsl: unseen=0.1151 , seen=0.5740 , h=0.1917\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91400 loss tensor(1.4752, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.395919303507824\n",
      "gzsl: unseen=0.1154 , seen=0.5743 , h=0.1922\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91600 loss tensor(1.4774, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39800272450918767\n",
      "gzsl: unseen=0.1163 , seen=0.5769 , h=0.1936\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91800 loss tensor(1.4789, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39639138243478195\n",
      "gzsl: unseen=0.1143 , seen=0.5776 , h=0.1908\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92000 loss tensor(1.4867, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39704679230579787\n",
      "gzsl: unseen=0.1186 , seen=0.5778 , h=0.1968\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92200 loss tensor(1.4842, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39601280872195815\n",
      "gzsl: unseen=0.1169 , seen=0.5761 , h=0.1944\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92400 loss tensor(1.4734, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39649642454116724\n",
      "gzsl: unseen=0.1129 , seen=0.5758 , h=0.1888\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92600 loss tensor(1.4836, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3950525515624024\n",
      "gzsl: unseen=0.1170 , seen=0.5737 , h=0.1944\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92800 loss tensor(1.4815, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39638023517822163\n",
      "gzsl: unseen=0.1181 , seen=0.5756 , h=0.1959\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93000 loss tensor(1.4730, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3962865351462421\n",
      "gzsl: unseen=0.1160 , seen=0.5753 , h=0.1931\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93200 loss tensor(1.4767, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39800393516294075\n",
      "gzsl: unseen=0.1173 , seen=0.5734 , h=0.1948\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93400 loss tensor(1.4808, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3973982001666716\n",
      "gzsl: unseen=0.1144 , seen=0.5770 , h=0.1909\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93600 loss tensor(1.4786, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39941538677643684\n",
      "gzsl: unseen=0.1158 , seen=0.5770 , h=0.1929\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93800 loss tensor(1.4689, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3960751930718363\n",
      "gzsl: unseen=0.1164 , seen=0.5770 , h=0.1937\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94000 loss tensor(1.4826, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3950921422243787\n",
      "gzsl: unseen=0.1191 , seen=0.5800 , h=0.1976\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94200 loss tensor(1.4815, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39372471576811535\n",
      "gzsl: unseen=0.1170 , seen=0.5757 , h=0.1945\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94400 loss tensor(1.4754, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3943362100209889\n",
      "gzsl: unseen=0.1194 , seen=0.5760 , h=0.1978\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94600 loss tensor(1.4754, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.4004323359289792\n",
      "gzsl: unseen=0.1176 , seen=0.5789 , h=0.1955\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94800 loss tensor(1.4744, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3967404923377773\n",
      "gzsl: unseen=0.1174 , seen=0.5831 , h=0.1955\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95000 loss tensor(1.4859, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3969857753566453\n",
      "gzsl: unseen=0.1180 , seen=0.5788 , h=0.1960\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 95200 loss tensor(1.4803, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3960029193270331\n",
      "gzsl: unseen=0.1159 , seen=0.5758 , h=0.1930\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95400 loss tensor(1.4760, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3957574414903198\n",
      "gzsl: unseen=0.1154 , seen=0.5809 , h=0.1926\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95600 loss tensor(1.4732, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3927370310390513\n",
      "gzsl: unseen=0.1148 , seen=0.5778 , h=0.1916\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95800 loss tensor(1.4776, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3933426807565655\n",
      "gzsl: unseen=0.1194 , seen=0.5804 , h=0.1981\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96000 loss tensor(1.4792, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3951075291583501\n",
      "gzsl: unseen=0.1151 , seen=0.5815 , h=0.1922\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96200 loss tensor(1.4765, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39481051543760765\n",
      "gzsl: unseen=0.1198 , seen=0.5794 , h=0.1986\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96400 loss tensor(1.4695, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3920090626531039\n",
      "gzsl: unseen=0.1165 , seen=0.5814 , h=0.1940\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96600 loss tensor(1.4780, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39862960569603273\n",
      "gzsl: unseen=0.1120 , seen=0.5865 , h=0.1880\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96800 loss tensor(1.4794, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3960352554135468\n",
      "gzsl: unseen=0.1143 , seen=0.5818 , h=0.1911\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97000 loss tensor(1.4810, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39330741961925975\n",
      "gzsl: unseen=0.1135 , seen=0.5815 , h=0.1899\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97200 loss tensor(1.4805, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39532456358964746\n",
      "gzsl: unseen=0.1148 , seen=0.5791 , h=0.1916\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97400 loss tensor(1.4732, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3960465548485751\n",
      "gzsl: unseen=0.1160 , seen=0.5776 , h=0.1932\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97600 loss tensor(1.4811, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3982863403283967\n",
      "gzsl: unseen=0.1191 , seen=0.5813 , h=0.1977\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97800 loss tensor(1.4790, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39725361460619224\n",
      "gzsl: unseen=0.1168 , seen=0.5818 , h=0.1945\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98000 loss tensor(1.4784, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39923222638988876\n",
      "gzsl: unseen=0.1131 , seen=0.5875 , h=0.1896\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98200 loss tensor(1.4769, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.393277271951534\n",
      "gzsl: unseen=0.1171 , seen=0.5798 , h=0.1949\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98400 loss tensor(1.4734, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3973269468262808\n",
      "gzsl: unseen=0.1177 , seen=0.5823 , h=0.1958\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98600 loss tensor(1.4779, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39163222638988876\n",
      "gzsl: unseen=0.1185 , seen=0.5836 , h=0.1970\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98800 loss tensor(1.4729, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3902492181818086\n",
      "gzsl: unseen=0.1161 , seen=0.5830 , h=0.1937\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99000 loss tensor(1.4798, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3979938083107928\n",
      "gzsl: unseen=0.1170 , seen=0.5793 , h=0.1947\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99200 loss tensor(1.4768, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39662229435558616\n",
      "gzsl: unseen=0.1174 , seen=0.5776 , h=0.1952\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99400 loss tensor(1.4829, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39903558282305235\n",
      "gzsl: unseen=0.1154 , seen=0.5852 , h=0.1927\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99600 loss tensor(1.4735, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.3945076570764825\n",
      "gzsl: unseen=0.1177 , seen=0.5804 , h=0.1958\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99800 loss tensor(1.4759, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39885019594684357\n",
      "gzsl: unseen=0.1167 , seen=0.5827 , h=0.1945\n",
      "____________________________________________________________________________________________________\n",
      "episode: 100000 loss tensor(1.4712, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.39368618814992884\n",
      "gzsl: unseen=0.1138 , seen=0.5792 , h=0.1902\n",
      "____________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "print(\"training...\")\n",
    "last_accuracy = 0.0\n",
    "loss_zero_num = 0\n",
    "#writer = SummaryWriter()\n",
    "for episode in range(EPISODE):\n",
    "    #attribute_network.train()\n",
    "    attribute_network_scheduler.step(episode)\n",
    "    metric_network_scheduler.step(episode)\n",
    "\n",
    "    train_loader = DataLoader(train_data, batch_size=BATCH_SIZE, shuffle=True)\n",
    "\n",
    "    batch_labels, batch_features = train_loader.__iter__().next()\n",
    "    batch_id = np.unique(batch_labels)\n",
    "\n",
    "    batch_attributes = torch.Tensor([all_attributes[i] for i in batch_id]).squeeze(1)\n",
    "    batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(batch_id.size, 0))\n",
    "    batch_attributes_ext = batch_attributes.repeat(BATCH_SIZE, 1)\n",
    "\n",
    "    batch_features_ext = Variable(batch_features_ext).cuda(GPU).float()  # 32*2048\n",
    "    batch_attributes_ext = Variable(batch_attributes_ext).cuda(GPU)\n",
    "    \n",
    "\n",
    "    re_batch_labels = []\n",
    "    for label in batch_labels.numpy():\n",
    "        index = np.argwhere(batch_id == label)\n",
    "        re_batch_labels.append(index[0][0])\n",
    "    re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "    re_batch_labels = Variable(re_batch_labels).cuda(GPU)\n",
    "    \n",
    "\n",
    "    criterion = HardTripletLoss_D(margin = Margin,cos_sim =True).cuda(GPU)\n",
    "    triplet_loss= criterion((attribute_network(batch_attributes_ext)), \n",
    "                            (batch_features_ext), re_batch_labels)\n",
    "    if triplet_loss == 0:\n",
    "        loss_zero_num = loss_zero_num + 1\n",
    "    metric_network.zero_grad()\n",
    "    attribute_network.zero_grad()\n",
    "    \n",
    "    triplet_loss.backward()\n",
    "    \n",
    "    attribute_network_optim.step()\n",
    "    metric_network_optim.step()\n",
    "    \n",
    "    if (episode+1)%200 == 0 or episode==0:\n",
    "        print(\"episode:\", episode+1, \"loss\", triplet_loss)\n",
    "        print('loss_zero_number= ',loss_zero_num)\n",
    "        #writer.add_scalar('data/loss_zero_number', loss_zero_num, episode)\n",
    "        loss_zero_num = 0\n",
    "        #writer.add_scalar('data/loss', triplet_loss, episode)\n",
    "    if (episode+1)%200 == 0 or episode==0:\n",
    "        print(\"Testing...\")\n",
    "        #attribute_network.eval()\n",
    "        zsl_accuracy = compute_accuracy_per_class(test_features, test_label, test_id, test_attributes,cos_sim =True)\n",
    "        gzsl_unseen_accuracy = compute_accuracy_per_class(test_features, test_label, np.arange(200), attributes,cos_sim =True)\n",
    "        gzsl_seen_accuracy  = compute_accuracy_per_class(test_seen_features, test_seen_label, np.arange(200), attributes,cos_sim =True)\n",
    "        H = 2 * gzsl_seen_accuracy * gzsl_unseen_accuracy / (gzsl_unseen_accuracy + gzsl_seen_accuracy)\n",
    "        print('zsl:', zsl_accuracy)\n",
    "        #print('zsl:', zsl_accuracy2)\n",
    "        print('gzsl: unseen=%.4f , seen=%.4f , h=%.4f' % (gzsl_unseen_accuracy , gzsl_seen_accuracy, H))\n",
    "        #print('gzsl: unseen=%.4f , seen=%.4f , h=%.4f' % (gzsl_unseen_accuracy2 , gzsl_seen_accuracy2, H2))\n",
    "        print('_'*100)\n",
    "        #writer.add_scalar('data/zsl_accuracy', zsl_accuracy, episode)\n",
    "        #writer.add_scalar('data/gzsl_unseen_accuracy', gzsl_unseen_accuracy, episode)\n",
    "        #writer.add_scalar('data/gzsl_seen_accuracy', gzsl_seen_accuracy, episode)\n",
    "        #writer.add_scalar('data/H', H, episode)\n",
    "#writer.export_scalars_to_json(\"./test.json\")\n",
    "#writer.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "pytorch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
